#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

typedef int SLDataType;
typedef struct SListNode
{
	SLDataType data;
	struct SListNode* next;
}SLNode;

void SLPrint(SLNode* phead);

void SLPushBack(SLNode** pphead, SLDataType x);
void SLPushFront(SLNode** pphead, SLDataType x);

void SLPopBack(SLNode** pphead);
void SLPopFront(SLNode** pphead);

SLNode* SLFind(SLNode** pphead, SLDataType x);

void SLInsert(SLNode** pphead,SLNode* pos ,SLDataType x);
void SLInsertAfter(SLNode** pphead, SLNode* pos, SLDataType x);

void SLErase(SLNode** pphead, SLNode* pos);
void SLEraseAfter(SLNode** pphead, SLNode* pos);

void SLDestroy(SLNode** pphead);